草庐IT

VBScript 变量

全部标签

Golang 短变量声明显示错误未解决

我是从Java到Go的新手看我的代码packageutilsimport"os"typeFileControllerstruct{file*os.File}func(c*FileController)OpenFile(pathstring)error{c.file,err:=os.OpenFile(path,os.O_CREATE|os.O_RDWR,0755)//returnsomevaluethese}我想打开一个文件,但这不起作用Goland告诉我未解析的引用'err'如果我先初始化错误,我会编写以下代码varerrerrorc.file,err=os.OpenFile(path

json - 在字符串中插入一个变量

我有hostname和json格式的字符串。我想将hostname插入到该json格式字符串中的键的值字符串中。我的完整代码:funcpager()string{token:="xxxxxxxxxxx"url:="https://api.pagerduty.com/incidents"hostname,err:=os.Hostname()fmt.Println(hostname,err)jsonStr:=[]byte(`{"incident":{"type":"incident",**"title":"Dockerisdownon."+hostname,**"service":{"id

go - 如何覆盖重载变量

我正在试验gowithpi计算公式,并做了这个:packagemainimport("fmt""math")funcbbpformula(){varresultfloat64fork:=0.0;k输出是:3.141592653589793但是,我想要更多的数字,我尝试使用math/big包使变量变大。Float具有更简单的公式,但算术运算非常困惑且缓慢。所以我的想法是在结果变量过载(最大容量)时覆盖它,但我不知道该怎么做!有人可以向我解释一下这是怎么做到的吗?编辑:尝试使用ifresult>math.MaxFloat64但输出变为空import("fmt""math")funcbbpf

variables - 如何通过连接两个字符串来创建动态变量名

我想通过连接当前日期来创建变量名,并为创建的变量名提供一个值。我的变量名应该类似于这样的"Key-2019-01"这样我就可以将值存储为varKey-2019-01="yes"我试过如下。packagemainimport("fmt""time""strconv""strings")funcmain(){currentMonth:=time.Now().Month()currentYear:=time.Now().Year()varmonth=int(currentMonth)varcurrentDate=strings.Join([]string{strconv.Itoa(curre

go - 当变量已经声明时,为什么我必须将类型传递给 make 函数?

我想使用匿名结构来做一些事情。varusers[]struct{Namestring`json:"name,omitempty"`Ageint}我必须再次编写类型来设置值users=make([]struct{Namestring`json:"name,omitempty"`Ageint},0,10)如果我坚持使用匿名结构,有没有办法让它更体面?(如果不是,我想知道为什么golang的设计会做出这样的功能...) 最佳答案 匿名结构对于一次性使用非常方便。如果您多次使用它,请定义一个命名结构类型。如果你只在一个函数中使用它,你可以在

go - 如果接口(interface)类型的变量是实现它的某种结构类型,如何检查 Go?

假设我有以下内容:typeAInterface{....}//ImplementsAtypeBstruct{....}//ImlementsAtypeCstruct{....}现在我有一个函数,它接受A类型的变量作为参数:funcFoo(objA){ifAisB{....}elseifAisC{....}}还有一个main函数:funcmain(){b:=B{}Foo(b)}如何检查传递给函数的参数是否实际上是B类型? 最佳答案 使用typeswitch如前所述,@CeriseLimón链接的旅游页面。funcFoo(vA){swi

variables - 如何对变量使用多态性

我是Go新手,开始学习多态性。当多个对象需要使用相同的功能时,我知道如何去做。但是我有一个新问题,如果我在不同的对象上有相同的变量,我不知道该怎么办。在下面的示例中,我有两个不同的对象:struct1和struct2。它们都有相同的变量name。我可以跑过它们并检查哪个是哪个并相应地工作(你可以测试它here):packagemainimport("fmt")typestruct1struct{namestring}typestruct2struct{namestring}funcmain(){structMap:=make(map[string]interface{})s1:=str

go - 在延迟恢复时设置变量

根据示例(例如gettingpanic()argumentindeferfunctioninGOlang)我已经看到,我希望它能工作,但事实并非如此。强制错误时,err返回字符串保持空白,尽管打印err字符串显示预期的错误。我确定我遗漏了一些明显的东西,但找不到它。有一点帮助吗?//expectederrorexample://chk,err:=equal("a",map[string]string{"a"})//funcEqual(ainterface{},binterface{})(checkbool,errstring){deferfunc(){ifcatch:=recover(

pointers - 在 Golang 中取消引用指向同一类型的指针变量而无需引用

我的应用程序有一个事件类型:typeEventstruct{Idstring}有时我有这种类型的实例和引用,有时没有:varevent*Event但是函数需要这种没有指针的类型:funcProcessEvent(eventEvent)所以我不能在这个函数中使用我的指针变量。也许有将*Event转换为Event的解决方案?或者我需要重构我的代码,让所有代码都没有指针?我使用这个解决方案,但我不喜欢它,因为我需要复制我的代码:event2:=Event{Id:event.Id} 最佳答案 要从指针转换,您需要取消引用指针:*event来

go - 为什么字节数组的Golang对象属性在分配给另一个变量时会被删除

我们需要在使用后清除一些变量。但是当它在结构中分配了一个[]byte字段时,它看起来真的很奇怪。为什么[]byte的赋值不是一个副本而是一个指针?我应该怎么做才能将值保留在结构a.bs中,但将b作为局部变量清除?http://play.golang.org/p/MT_wAHj2OMpackagemainimport"fmt"typesostruct{bs[]byte}funczeroes(nint)[]byte{returnmake([]byte,n)}funcwipeBytes(b[]byte){copy(b,zeroes(len(b)))}funcmain(){a:=so{bs:[